﻿package com.dykj.platform.iadapter.utils;

import java.util.StringTokenizer;
import com.dykj.platform.iadapter.common.Constants;
public class StringUtils {
	  /**
	   * 此方法将给出的字符串source使用逗号划分为单词数组。
	   * @param source 需要进行划分的原字符串
	   * @return 划分以后的数组，如果source为null的时候返回以source为唯一元素的数组。
	   * @since  0.1
	   */
	  public static String[] split(String source) {
	    return split2(source, Constants.RECORD_SEPARATOR);
	  }
	  
	  public static String[] split2(String source, String delim){
		  return source.split(delim);
	  }
	  
	  /**
	   * 此方法将给出的字符串source使用逗号划分为单词数组。
	   * @param source 需要进行划分的原字符串
	   * @return 划分以后的数组，如果source为null的时候返回以source为唯一元素的数组。
	   * @since  0.1
	   */
	  public static String[] splitList(String source) {
	    return split(source, Constants.LIST_SEPARATOR);
	  }
	  
	  /**
	   * 此方法将给出的字符串source使用delim划分为单词数组。
	   * @param source 需要进行划分的原字符串
	   * @param delim 单词的分隔字符串
	   * @return 划分以后的数组，如果source为null的时候返回以source为唯一元素的数组，
	   *         如果delim为null则使用逗号作为分隔字符串。
	   * @since  0.1
	   */
	  public static String[] split(String source, String delim) {
	    String[] wordLists;
	    if (source == null||source.equals("null")) {
	      wordLists = new String[0];
	      return wordLists;
	    }
	    if (delim == null) {
	      delim = Constants.RECORD_SEPARATOR;
	    }
	    StringTokenizer st = new StringTokenizer(source, delim);
	    int total = st.countTokens();
	    wordLists = new String[total];
	    for (int i = 0; i < total; i++) {
	      wordLists[i] = st.nextToken();
	    }
	    return wordLists;
	  }
	  
	  /**
	   * 判断数据是否DOUBLE或空
	   * 
	   */
	  public static Double strToDouble(String str) {
		Double dou=null;
		if(str.equals("")){
			dou=Double.valueOf("0");
		}else{
			try{
				dou=Double.valueOf(str); 
			}catch(Exception e){
				dou=Double.valueOf("-1");
			}
			dou=Double.valueOf(str);
		}
	    return dou;
	  }
	  
	  /**
	   * 判断数据是否LONG或空
	   * 
	   */
	  public static Long strToLong(String str) {
		  Long dou=null;
		if(str.equals("")){
			dou=Long.valueOf("0");
		}else{
			try{
				dou=Long.valueOf(str); 
			}catch(Exception e){
				dou=Long.valueOf("-1");
			}
			dou=Long.valueOf(str);
		}
	    return dou;
	  }
	  
	  /**
	   * Object变成字符串
	   * 
	   */
	  public static String objToStr(Object str) {
		  StringBuffer result = new StringBuffer();
		  if(str==null){
		  }else if(str instanceof String[]){
			  String[] array = (String[])str;
			  for(int i=0;i<array.length;i++){
				  if(i!=0){
					  result.append(","); 
				  }
				  result.append(array[i]);
			  }
		  }else{
			  return str.toString();
		  }
		  return result.toString();
	  }
	  
	  /**
	   * Object变成double
	   * 
	   */
	  public static Double objToDou(Object obj) {
		  return strToDouble(objToStr(obj));
	  }
	  /**
	   * 把NULL变成空字符串
	   */
	  public static String nullToStr(String str){
		  if((str==null)||(str.equals("null"))){
			  return "";
		  }else{
			  return str;
		  }
	  }
}
